API (Application Programming Interface) হল একটি ইন্টারফেস যা বিভিন্ন সিস্টেমের মধ্যে ডেটা আদান-প্রদান করতে ব্যবহৃত হয়। CodeIgniter একটি শক্তিশালী ফ্রেমওয়ার্ক যা RESTful API তৈরি করার জন্য সহজ পদ্ধতি সরবরাহ করে। RESTful API তৈরির জন্য HTTP মেথডগুলি (যেমন GET, POST, PUT, DELETE) ব্যবহার করা হয়, এবং CodeIgniter এ এই মেথডগুলির মাধ্যমে ডেটা পরিচালনা করা যায়।
এই টিউটোরিয়ালে, আমরা API endpoints এবং HTTP মেথডগুলো নিয়ে আলোচনা করবো এবং দেখাবো কীভাবে CodeIgniter ব্যবহার করে GET, POST, PUT, এবং DELETE মেথডের মাধ্যমে API তৈরি করা যায়।
RESTful API তৈরির জন্য প্রধানত চারটি HTTP মেথড ব্যবহৃত হয়:
প্রথমে একটি API কন্ট্রোলার তৈরি করতে হবে যেখানে API endpoints এবং HTTP মেথডগুলির জন্য মেথডগুলো থাকবে।
ApiController.php
)<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class ApiController extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->database(); // ডাটাবেস লোড
$this->load->helper('url'); // URL হেল্পার লোড
}
// GET: Retrieve a list of users
public function get_users() {
$query = $this->db->get('users'); // users টেবিল থেকে ডেটা পাওয়া
$data = $query->result_array();
echo json_encode($data); // JSON রেসপন্স
}
// POST: Create a new user
public function create_user() {
$data = json_decode(file_get_contents('php://input'), true); // JSON রিকোয়েস্ট ডেটা
$this->db->insert('users', $data); // ডেটা ইনসার্ট করা
echo json_encode(['status' => 'success', 'message' => 'User created successfully']);
}
// PUT: Update an existing user
public function update_user($id) {
$data = json_decode(file_get_contents('php://input'), true); // JSON রিকোয়েস্ট ডেটা
$this->db->where('id', $id);
$this->db->update('users', $data); // ডেটা আপডেট করা
echo json_encode(['status' => 'success', 'message' => 'User updated successfully']);
}
// DELETE: Delete a user
public function delete_user($id) {
$this->db->where('id', $id);
$this->db->delete('users'); // ডেটা ডিলিট করা
echo json_encode(['status' => 'success', 'message' => 'User deleted successfully']);
}
}
get_users()
মেথডটি GET
রিকোয়েস্টের মাধ্যমে users
টেবিল থেকে সমস্ত ব্যবহারকারীর তথ্য সংগ্রহ করে এবং JSON আকারে রিটার্ন করে।create_user()
মেথডটি POST
রিকোয়েস্টের মাধ্যমে নতুন ব্যবহারকারী তৈরি করে।update_user($id)
মেথডটি PUT
রিকোয়েস্টের মাধ্যমে একটি বিদ্যমান ব্যবহারকারীকে আপডেট করে।delete_user($id)
মেথডটি DELETE
রিকোয়েস্টের মাধ্যমে একটি ব্যবহারকারী মুছে ফেলে।application/config/routes.php
ফাইলে API endpoints রাউটিং সেটআপ করুন।
$route['api/users'] = 'ApiController/get_users'; // GET all users
$route['api/user/create'] = 'ApiController/create_user'; // POST create user
$route['api/user/update/(:num)'] = 'ApiController/update_user/$1'; // PUT update user
$route['api/user/delete/(:num)'] = 'ApiController/delete_user/$1'; // DELETE delete user
এখানে:
/api/users
: সমস্ত ব্যবহারকারীর তালিকা দেখানোর জন্য GET
রিকোয়েস্ট।/api/user/create
: নতুন ব্যবহারকারী তৈরি করার জন্য POST
রিকোয়েস্ট।/api/user/update/{id}
: নির্দিষ্ট ব্যবহারকারী আপডেট করার জন্য PUT
রিকোয়েস্ট।/api/user/delete/{id}
: নির্দিষ্ট ব্যবহারকারী মুছে ফেলার জন্য DELETE
রিকোয়েস্ট।GET মেথড API কল ব্যবহারকারীর কাছে ডেটা পাঠানোর জন্য ব্যবহৃত হয়। উদাহরণস্বরূপ, সমস্ত ব্যবহারকারীর তালিকা বের করার জন্য:
API Call (GET):
GET http://localhost/your_project/api/users
Response (JSON):
[
{
"id": 1,
"name": "John Doe",
"email": "john.doe@example.com"
},
{
"id": 2,
"name": "Jane Doe",
"email": "jane.doe@example.com"
}
]
POST মেথড ব্যবহারকারী থেকে ডেটা গ্রহণ করে এবং ডাটাবেসে নতুন রেকর্ড যোগ করে।
API Call (POST):
POST http://localhost/your_project/api/user/create
Content-Type: application/json
Body:
{
"name": "New User",
"email": "new.user@example.com"
}
Response (JSON):
{
"status": "success",
"message": "User created successfully"
}
PUT মেথড ব্যবহারকারী থেকে নতুন ডেটা গ্রহণ করে এবং একটি বিদ্যমান রেকর্ড আপডেট করে।
API Call (PUT):
PUT http://localhost/your_project/api/user/update/1
Content-Type: application/json
Body:
{
"name": "Updated User",
"email": "updated.user@example.com"
}
Response (JSON):
{
"status": "success",
"message": "User updated successfully"
}
DELETE মেথড একটি নির্দিষ্ট ডেটা মুছে ফেলার জন্য ব্যবহার করা হয়।
API Call (DELETE):
DELETE http://localhost/your_project/api/user/delete/1
Response (JSON):
{
"status": "success",
"message": "User deleted successfully"
}
এটি গুরুত্বপূর্ণ যে আপনি আপনার API গুলিকে সুরক্ষিত রাখবেন। API সুরক্ষার জন্য API Key, OAuth বা JWT (JSON Web Tokens) ব্যবহার করা যেতে পারে। CodeIgniter-এ Authorization
হেডার চেক করে সুরক্ষা নিশ্চিত করা সম্ভব।
CodeIgniter-এ API endpoints তৈরি করা সহজ এবং কার্যকরী। GET, POST, PUT, এবং DELETE মেথড ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশন থেকে ডেটা প্রক্রিয়া এবং পরিচালনা করতে পারেন। এটি RESTful API তৈরির জন্য একটি কার্যকরী পদ্ধতি এবং আপনাকে JSON ডেটা বিনিময় করতে সাহায্য করে।